package com.ruoyi.develop.goodsReimbursement.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.develop.goodsFee.domain.GoodsFee;
import com.ruoyi.develop.goodsOrderIn.domain.GoodsOrderIn;
import com.ruoyi.develop.goodsReimbursementDetail.domain.GoodsReimbursementDetail;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 报销发票信息管理对象 goods_reimbursement
 *
 * @author qh
 * @date 2023-01-12
 */
public class GoodsReimbursement extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private String id;

    /**
     * 报销类型(0:公采;  1:自采)
     */
    @Excel(name = "报销类型(0:公采;  1:自采)")
    private String type;

    /**
     * 报销人
     */
    @Excel(name = "报销人")
    private String userId;

    /**
     * 报销人姓名
     */
    @Excel(name = "报销人姓名")
    private String userName;

    /**
     * 报销日期
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @Excel(name = "报销日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date imburseDate;

    /**
     * 报销金额
     */
    @Excel(name = "报销金额")
    private BigDecimal imburseMoney;

    /**
     * 关联发票
     */
    @Excel(name = "关联发票")
    private String taxId;

    /**
     * 发票号码
     */
    @Excel(name = "发票号码")
    private String taxNo;

    /**
     * 发票金额
     */
    @Excel(name = "发票金额")
    private BigDecimal taxMoney;

    /**
     * 报销描述
     */
    @Excel(name = "报销描述")
    private String infomation;

    /**
     * 关联商品id
     */
    @Excel(name = "关联商品id")
    private String goodsIds;

    /**
     * 附件
     */
    @Excel(name = "附件")
    private String file;

    /**
     * 报销状态（0申请中 ; 1审核通过 ; 2:已发放）
     */
    @Excel(name = "报销状态", readConverterExp = "0=申请中,;=,1=审核通过,;=,2=:已发放")
    private String status;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    private BigDecimal remMoney;    //已报销发放
    private BigDecimal remRemain;   //剩余报销
    private String remCompany;

    private GoodsReimbursementDetail reimbursementDetail = new GoodsReimbursementDetail();

    public GoodsReimbursementDetail getReimbursementDetail() {
        return reimbursementDetail;
    }

    private String prjid;//项目名称
    private String prjname;//项目名称
    private String qkrmc;//请款人名称
    private String qkrkhh;//请款人开户行
    private String qkrzh;//请款人账号
    private String zjyt;//资金用途
    private String qksy;//请款事由
    private String qkhj;//请款合计(大写)
    private String qkbz;//付款备注信息

    /**
     * 入库商品报销数据
     */
    private List<GoodsOrderIn> orderList;

    private List<GoodsFee> feeList;

    private String deptId;
    private String deptName;

    public String getDeptId() {
        return deptId;
    }

    public void setDeptId(String deptId) {
        this.deptId = deptId;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }


    public List<GoodsFee> getFeeList() {
        return feeList;
    }

    public void setFeeList(List<GoodsFee> feeList) {
        this.feeList = feeList;
    }

    public String getPrjid() {
        return prjid;
    }

    public void setPrjid(String prjid) {
        this.prjid = prjid;
    }

    public String getPrjname() {
        return prjname;
    }

    public void setPrjname(String prjname) {
        this.prjname = prjname;
    }

    public String getQkrmc() {
        return qkrmc;
    }

    public void setQkrmc(String qkrmc) {
        this.qkrmc = qkrmc;
    }

    public String getQkrkhh() {
        return qkrkhh;
    }

    public void setQkrkhh(String qkrkhh) {
        this.qkrkhh = qkrkhh;
    }

    public String getQkrzh() {
        return qkrzh;
    }

    public void setQkrzh(String qkrzh) {
        this.qkrzh = qkrzh;
    }

    public String getZjyt() {
        return zjyt;
    }

    public void setZjyt(String zjyt) {
        this.zjyt = zjyt;
    }

    public String getQksy() {
        return qksy;
    }

    public void setQksy(String qksy) {
        this.qksy = qksy;
    }

    public String getQkhj() {
        return qkhj;
    }

    public void setQkhj(String qkhj) {
        this.qkhj = qkhj;
    }

    public String getQkbz() {
        return qkbz;
    }

    public void setQkbz(String qkbz) {
        this.qkbz = qkbz;
    }

    public void setReimbursementDetail(GoodsReimbursementDetail reimbursementDetail) {
        this.reimbursementDetail = reimbursementDetail;
    }

    public BigDecimal getRemMoney() {
        return remMoney;
    }

    public void setRemMoney(BigDecimal remMoney) {
        this.remMoney = remMoney;
    }

    public BigDecimal getRemRemain() {
        return remRemain;
    }

    public void setRemRemain(BigDecimal remRemain) {
        this.remRemain = remRemain;
    }

    public String getRemCompany() {
        return remCompany;
    }

    public void setRemCompany(String remCompany) {
        this.remCompany = remCompany;
    }


    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserName() {
        return userName;
    }

    public void setImburseDate(Date imburseDate) {
        this.imburseDate = imburseDate;
    }

    public Date getImburseDate() {
        return imburseDate;
    }

    public void setTaxId(String taxId) {
        this.taxId = taxId;
    }

    public String getTaxId() {
        return taxId;
    }

    public void setTaxNo(String taxNo) {
        this.taxNo = taxNo;
    }

    public String getTaxNo() {
        return taxNo;
    }

    public void setTaxMoney(BigDecimal taxMoney) {
        this.taxMoney = taxMoney;
    }

    public BigDecimal getTaxMoney() {
        return taxMoney;
    }

    public void setInfomation(String infomation) {
        this.infomation = infomation;
    }

    public String getInfomation() {
        return infomation;
    }

    public void setGoodsIds(String goodsIds) {
        this.goodsIds = goodsIds;
    }

    public String getGoodsIds() {
        return goodsIds;
    }

    public void setFile(String file) {
        this.file = file;
    }

    public String getFile() {
        return file;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public BigDecimal getImburseMoney() {
        return imburseMoney;
    }

    public void setImburseMoney(BigDecimal imburseMoney) {
        this.imburseMoney = imburseMoney;
    }

    public List<GoodsOrderIn> getOrderList() {
        return orderList;
    }

    public void setOrderList(List<GoodsOrderIn> orderList) {
        this.orderList = orderList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("type", getType())
                .append("userId", getUserId())
                .append("userName", getUserName())
                .append("imburseDate", getImburseDate())
                .append("taxId", getTaxId())
                .append("taxNo", getTaxNo())
                .append("taxMoney", getTaxMoney())
                .append("infomation", getInfomation())
                .append("goodsIds", getGoodsIds())
                .append("file", getFile())
                .append("status", getStatus())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
